home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / JDesktopPane.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  6.3 KB  |  297 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.beans.PropertyVetoException;
  5. import java.io.IOException;
  6. import java.io.ObjectOutputStream;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. import java.util.TreeSet;
  10. import java.util.Vector;
  11. import javax.accessibility.Accessible;
  12. import javax.accessibility.AccessibleContext;
  13. import javax.swing.plaf.DesktopPaneUI;
  14.  
  15. public class JDesktopPane extends JLayeredPane implements Accessible {
  16.    private static final String uiClassID = "DesktopPaneUI";
  17.    transient DesktopManager desktopManager;
  18.    private transient JInternalFrame selectedFrame = null;
  19.    public static final int LIVE_DRAG_MODE = 0;
  20.    public static final int OUTLINE_DRAG_MODE = 1;
  21.    private int dragMode = 0;
  22.    private boolean dragModeSet = false;
  23.    private transient List<JInternalFrame> framesCache;
  24.    private boolean componentOrderCheckingEnabled = true;
  25.    private boolean componentOrderChanged = false;
  26.  
  27.    public JDesktopPane() {
  28.       this.setUIProperty("opaque", Boolean.TRUE);
  29.       this.setFocusCycleRoot(true);
  30.       this.setFocusTraversalPolicy(new 1(this));
  31.       this.updateUI();
  32.    }
  33.  
  34.    public DesktopPaneUI getUI() {
  35.       return (DesktopPaneUI)this.ui;
  36.    }
  37.  
  38.    public void setUI(DesktopPaneUI var1) {
  39.       super.setUI(var1);
  40.    }
  41.  
  42.    public void setDragMode(int var1) {
  43.       int var2 = this.dragMode;
  44.       this.dragMode = var1;
  45.       this.firePropertyChange("dragMode", var2, this.dragMode);
  46.       this.dragModeSet = true;
  47.    }
  48.  
  49.    public int getDragMode() {
  50.       return this.dragMode;
  51.    }
  52.  
  53.    public DesktopManager getDesktopManager() {
  54.       return this.desktopManager;
  55.    }
  56.  
  57.    public void setDesktopManager(DesktopManager var1) {
  58.       DesktopManager var2 = this.desktopManager;
  59.       this.desktopManager = var1;
  60.       this.firePropertyChange("desktopManager", var2, this.desktopManager);
  61.    }
  62.  
  63.    public void updateUI() {
  64.       this.setUI((DesktopPaneUI)UIManager.getUI(this));
  65.    }
  66.  
  67.    public String getUIClassID() {
  68.       return "DesktopPaneUI";
  69.    }
  70.  
  71.    public JInternalFrame[] getAllFrames() {
  72.       Vector var4 = new Vector(10);
  73.       int var2 = this.getComponentCount();
  74.  
  75.       for(int var1 = 0; var1 < var2; ++var1) {
  76.          Component var5 = this.getComponent(var1);
  77.          if (var5 instanceof JInternalFrame) {
  78.             var4.addElement(var5);
  79.          } else if (var5 instanceof JInternalFrame.JDesktopIcon) {
  80.             JInternalFrame var6 = ((JInternalFrame.JDesktopIcon)var5).getInternalFrame();
  81.             if (var6 != null) {
  82.                var4.addElement(var6);
  83.             }
  84.          }
  85.       }
  86.  
  87.       JInternalFrame[] var3 = new JInternalFrame[var4.size()];
  88.       var4.copyInto(var3);
  89.       return var3;
  90.    }
  91.  
  92.    public JInternalFrame getSelectedFrame() {
  93.       return this.selectedFrame;
  94.    }
  95.  
  96.    public void setSelectedFrame(JInternalFrame var1) {
  97.       this.selectedFrame = var1;
  98.    }
  99.  
  100.    public JInternalFrame[] getAllFramesInLayer(int var1) {
  101.       Vector var5 = new Vector(10);
  102.       int var3 = this.getComponentCount();
  103.  
  104.       for(int var2 = 0; var2 < var3; ++var2) {
  105.          Component var6 = this.getComponent(var2);
  106.          if (var6 instanceof JInternalFrame) {
  107.             if (((JInternalFrame)var6).getLayer() == var1) {
  108.                var5.addElement(var6);
  109.             }
  110.          } else if (var6 instanceof JInternalFrame.JDesktopIcon) {
  111.             JInternalFrame var7 = ((JInternalFrame.JDesktopIcon)var6).getInternalFrame();
  112.             if (var7 != null && ((JInternalFrame)var7).getLayer() == var1) {
  113.                var5.addElement(var7);
  114.             }
  115.          }
  116.       }
  117.  
  118.       JInternalFrame[] var4 = new JInternalFrame[var5.size()];
  119.       var5.copyInto(var4);
  120.       return var4;
  121.    }
  122.  
  123.    private List<JInternalFrame> getFrames() {
  124.       TreeSet var2 = new TreeSet();
  125.  
  126.       for(int var3 = 0; var3 < this.getComponentCount(); ++var3) {
  127.          Component var1 = this.getComponent(var3);
  128.          if (var1 instanceof JInternalFrame) {
  129.             var2.add(new ComponentPosition((JInternalFrame)var1, this.getLayer(var1), var3));
  130.          } else if (var1 instanceof JInternalFrame.JDesktopIcon) {
  131.             JInternalFrame var6 = ((JInternalFrame.JDesktopIcon)var1).getInternalFrame();
  132.             var2.add(new ComponentPosition(var6, this.getLayer(var6), var3));
  133.          }
  134.       }
  135.  
  136.       ArrayList var7 = new ArrayList(var2.size());
  137.  
  138.       for(ComponentPosition var5 : var2) {
  139.          var7.add(javax.swing.JDesktopPane.ComponentPosition.access$000(var5));
  140.       }
  141.  
  142.       return var7;
  143.    }
  144.  
  145.    private JInternalFrame getNextFrame(JInternalFrame var1, boolean var2) {
  146.       this.verifyFramesCache();
  147.       if (var1 == null) {
  148.          return this.getTopInternalFrame();
  149.       } else {
  150.          int var3 = this.framesCache.indexOf(var1);
  151.          if (var3 != -1 && this.framesCache.size() != 1) {
  152.             if (var2) {
  153.                ++var3;
  154.                if (var3 == this.framesCache.size()) {
  155.                   var3 = 0;
  156.                }
  157.             } else {
  158.                --var3;
  159.                if (var3 == -1) {
  160.                   var3 = this.framesCache.size() - 1;
  161.                }
  162.             }
  163.  
  164.             return (JInternalFrame)this.framesCache.get(var3);
  165.          } else {
  166.             return null;
  167.          }
  168.       }
  169.    }
  170.  
  171.    JInternalFrame getNextFrame(JInternalFrame var1) {
  172.       return this.getNextFrame(var1, true);
  173.    }
  174.  
  175.    private JInternalFrame getTopInternalFrame() {
  176.       return this.framesCache.size() == 0 ? null : (JInternalFrame)this.framesCache.get(0);
  177.    }
  178.  
  179.    private void updateFramesCache() {
  180.       this.framesCache = this.getFrames();
  181.    }
  182.  
  183.    private void verifyFramesCache() {
  184.       if (this.componentOrderChanged) {
  185.          this.componentOrderChanged = false;
  186.          this.updateFramesCache();
  187.       }
  188.  
  189.    }
  190.  
  191.    public JInternalFrame selectFrame(boolean var1) {
  192.       JInternalFrame var2 = this.getSelectedFrame();
  193.       JInternalFrame var3 = this.getNextFrame(var2, var1);
  194.       if (var3 == null) {
  195.          return null;
  196.       } else {
  197.          this.setComponentOrderCheckingEnabled(false);
  198.          if (var1 && var2 != null) {
  199.             var2.moveToBack();
  200.          }
  201.  
  202.          try {
  203.             var3.setSelected(true);
  204.          } catch (PropertyVetoException var5) {
  205.          }
  206.  
  207.          this.setComponentOrderCheckingEnabled(true);
  208.          return var3;
  209.       }
  210.    }
  211.  
  212.    void setComponentOrderCheckingEnabled(boolean var1) {
  213.       this.componentOrderCheckingEnabled = var1;
  214.    }
  215.  
  216.    protected void addImpl(Component var1, Object var2, int var3) {
  217.       super.addImpl(var1, var2, var3);
  218.       if (this.componentOrderCheckingEnabled && (var1 instanceof JInternalFrame || var1 instanceof JInternalFrame.JDesktopIcon)) {
  219.          this.componentOrderChanged = true;
  220.       }
  221.  
  222.    }
  223.  
  224.    public void remove(int var1) {
  225.       if (this.componentOrderCheckingEnabled) {
  226.          Component var2 = this.getComponent(var1);
  227.          if (var2 instanceof JInternalFrame || var2 instanceof JInternalFrame.JDesktopIcon) {
  228.             this.componentOrderChanged = true;
  229.          }
  230.       }
  231.  
  232.       super.remove(var1);
  233.    }
  234.  
  235.    public void removeAll() {
  236.       if (this.componentOrderCheckingEnabled) {
  237.          int var1 = this.getComponentCount();
  238.  
  239.          for(int var2 = 0; var2 < var1; ++var2) {
  240.             Component var3 = this.getComponent(var2);
  241.             if (var3 instanceof JInternalFrame || var3 instanceof JInternalFrame.JDesktopIcon) {
  242.                this.componentOrderChanged = true;
  243.                break;
  244.             }
  245.          }
  246.       }
  247.  
  248.       super.removeAll();
  249.    }
  250.  
  251.    public void setComponentZOrder(Component var1, int var2) {
  252.       super.setComponentZOrder(var1, var2);
  253.       if (this.componentOrderCheckingEnabled && (var1 instanceof JInternalFrame || var1 instanceof JInternalFrame.JDesktopIcon)) {
  254.          this.componentOrderChanged = true;
  255.       }
  256.  
  257.    }
  258.  
  259.    private void writeObject(ObjectOutputStream var1) throws IOException {
  260.       var1.defaultWriteObject();
  261.       if (this.getUIClassID().equals("DesktopPaneUI")) {
  262.          byte var2 = JComponent.getWriteObjCounter(this);
  263.          --var2;
  264.          JComponent.setWriteObjCounter(this, var2);
  265.          if (var2 == 0 && this.ui != null) {
  266.             this.ui.installUI(this);
  267.          }
  268.       }
  269.  
  270.    }
  271.  
  272.    void setUIProperty(String var1, Object var2) {
  273.       if (var1 == "dragMode") {
  274.          if (!this.dragModeSet) {
  275.             this.setDragMode((Integer)var2);
  276.             this.dragModeSet = false;
  277.          }
  278.       } else {
  279.          super.setUIProperty(var1, var2);
  280.       }
  281.  
  282.    }
  283.  
  284.    protected String paramString() {
  285.       String var1 = this.desktopManager != null ? this.desktopManager.toString() : "";
  286.       return super.paramString() + ",desktopManager=" + var1;
  287.    }
  288.  
  289.    public AccessibleContext getAccessibleContext() {
  290.       if (this.accessibleContext == null) {
  291.          this.accessibleContext = new AccessibleJDesktopPane(this);
  292.       }
  293.  
  294.       return this.accessibleContext;
  295.    }
  296. }
  297.